Methods and systems for multi-pane video communications

ABSTRACT

Systems and methods are disclosed for establishing a video connection between a mobile device and a support terminal while enabling the support terminal to concurrently push display elements to the mobile device through a separate connection. In particular, in one or more embodiments, the disclosed systems and methods establish a first connection between the support terminal and the mobile device and conduct a video chat between the devices transmitted through the first connection. The disclosed systems and methods enable the support terminal to push a display element to the mobile device through a second connection. In response to receiving the display element, the disclosed systems and methods divide the display screen of the mobile device into at least a first pane and a second pane, providing the video chat for display on the first pane and the display element for display on the second pane.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 15/208,576, filed on Jul. 12, 2016, which is acontinuation-in-part of U.S. patent application Ser. No. 29/561,280,filed on Apr. 14, 2016. Each of the aforementioned applications arehereby incorporated by reference in their entirety.

BACKGROUND

Many modern businesses create mobile applications meant to improveaccessibility to the business and allow a user to perform some desiredfunction or access information on a mobile device. Some businesses, suchas game developers, do business solely through the application itself.Other businesses, such as banks, may create a mobile application merelyto provide customers a convenient alternative to visiting a brick andmortar branch of the business.

A frequent problem arises when a user does not know how to perform adesired function or access information on the business's mobileapplication. New users and users not familiar with technology often runexperience frustration when using mobile applications. This frustrationmay lead a user to abandon the mobile application and, possibly, thebusiness-customer relationship altogether.

More specifically, problems associated with current mobile applicationtechnology that commonly add to a user's frustration include a lack ofinterpersonal communication between the user and a representative of thebusiness. Because a mobile application may generally substitute forface-to-face interaction, a user may have little interaction with anypeople associated with the business, leading to disconnect between theuser and the business. This disconnect can weaken the business-customerrelationship.

Additional problems include the continued need for the user to be theprincipal navigator of the application. Though a user may seekassistance from a customer support representative in interacting withthe application, the support representative is generally limited toorally providing instructions to the user. As a result, any renderedassistance fails to alleviate the burden of navigating the applicationfrom the user. If the user doesn't understand or cannot follow theinstructions, frustration results.

Prior attempts to improve a user's experience have included tutorialslide shows or videos, help documents, guided tours of the site orapplication, or other similar attempts to familiarize the user with theoffered functionality. These solutions, however, typically do not coverevery function offered, overload the user with too much information atonce, or offer a predetermined explanation with no elaboration if theuser does not understand.

Other solutions, such as telephone support, requires the user to eitheruse multiple devices to follow the representative's instructions whileon the phone or to write down or memorize the instructions and performthem after the conversation has ended. This limits a user to seekingsupport only where multiple devices or writing materials are available.For example, often a user may be trying to use a mobile application ontheir mobile phone. Many mobile phones do not allow a user to talk on aphone call and navigate a mobile application at the same time. Thus, aphone call many not be sufficient to resolve the user's concerns.

Users may attempt to perform a video call or text chat session to obtainhelp with a mobile application. Again, some devices do not allow forsimultaneous video chats and navigation of a mobile application.Furthermore, even if the devices allow for both, the use of two separateapplications (the mobile application and a video chat application)require switching back and forth between the video call application andthe mobile application, require large amounts of processing power to runboth applications, or otherwise lead to a degraded experience.

SUMMARY

One or more embodiments described herein provide benefits and/or solveone or more of the foregoing or other problems in the art with systemsand methods for establishing a video connection between a mobile deviceand a support terminal while also allowing the support terminal to pushdisplay elements through a separate connection to the mobile device. Inparticular, establishing a separate connection providing bidirectionalcapabilities between the mobile device and support terminal allows thesupport terminal to push elements directly to the mobile device whilemaintaining the video connection. Thus, rather than requiring a user ofan application on the mobile device to navigate the application to findthe display elements, the support terminal pushes these elementsdirectly to the mobile device. In effect, the systems and methods allowa support terminal to remotely control the display of such elements onthe mobile device.

Additionally, when the mobile device receives a display element,instructions stored on the mobile device execute, dividing the displayof the mobile device into at least a first pane and a second pane. Thefirst pane displays a video chat session and the second pane displaysthe display element. Thus, the user of the mobile device is able tomaintain interpersonal communication with a user of the support terminalwhile reviewing and/or interacting with the display element/mobileapplication. In this way, a user of the mobile application is spared thehassle of using multiple devices or memorizing instructions when seekinghelp in navigating and using the application.

Additional features and advantages of exemplary embodiments of thepresent disclosure will be set forth in the description which follows,and in part will be obvious from the description, or may be learned bythe practice of such exemplary embodiments. The features and advantagesof such embodiments may be realized and obtained by means of theinstruments and combinations particularly pointed out in the appendedclaims. These and other features will become more fully apparent fromthe following description and appended claims, or may be learned by thepractice of such exemplary embodiments as set forth hereinafter. Theforegoing summary is not an extensive overview, and it is not intendedto identify key elements or indicate a scope. Rather the foregoingsummary identifies aspects of embodiments as a prelude to the detaileddescription presented below.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above recited and otheradvantages and features of the invention can be obtained, a moreparticular description of the invention briefly described above will berendered by reference to specific embodiments thereof that areillustrated in the appended drawings. It should be noted that thefigures are not drawn to scale, and that elements of similar structureor function are generally represented by like reference numerals forillustrative purposes throughout the figures. Understanding that thesedrawings depict only typical embodiments of the invention and are nottherefore to be considered to be limiting of its scope, the inventionwill be described and explained with additional specificity and detailthrough the use of the accompanying drawings in which:

FIG. 1 illustrates a schematic diagram of a communications system inaccordance with one or more embodiments;

FIG. 2 illustrates a mobile device displaying an application userinterface operable to enable a mobile device user to interact with amobile application in accordance with one or more embodiments;

FIG. 3 illustrates a flowchart of a series of acts in a method ofinitiating a video chat connection between a mobile device and a supportterminal in accordance with one or more embodiments;

FIG. 4 illustrates a mobile device displaying a video chat interface inaccordance with one or more embodiments;

FIG. 5A illustrates a mobile device displaying a dual pane display witha display element in accordance with one or more embodiments;

FIG. 5B illustrates a mobile device displaying a dual pane display withanother display element in accordance with one or more embodiments;

FIG. 5C illustrates a mobile device displaying a dual pane display withyet another display element in accordance with one or more embodiments;

FIG. 5D illustrates a mobile device displaying a dual pane display withyet another display element in accordance with one or more embodiments;

FIG. 5E illustrates a mobile device displaying a dual pane display withyet another display element in accordance with one or more embodiments;

FIG. 5F illustrates a mobile device displaying a dual pane display withyet another display element in accordance with one or more embodiments;

FIG. 6 illustrates an example implementation of a communications systemused to send a modified display element in accordance with one or moreembodiments;

FIG. 7 illustrates a schematic diagram of a communications system inaccordance with one or more embodiments;

FIG. 8 illustrates a flowchart of a series of acts in a method ofimplementing a dual pane display in accordance with one or moreembodiments;

FIG. 9 illustrates a flowchart of series of acts in another method ofimplementing a dual pane display in accordance with one or moreembodiments; and

FIG. 10 illustrates a block diagram of an exemplary computing device inaccordance with one or more embodiments.

DETAILED DESCRIPTION

One or more embodiments described herein include a communications systemthat enables a single mobile application to use multiple communicationconnections with a support terminal to provide a video chat whileconcurrently providing a display element pushed to the mobile device bythe support terminal. To illustrate, a user of the mobile deviceaccesses the communications system via the mobile application. In one ormore embodiments, a user interface of the mobile application provides aselectable option to request assistance from a support representativevia video chat. In response to the user request, the communicationssystem establishes a video chat session between the mobile device andthe support terminal. The video chat allows the user to communicate witha support representative using the support terminal and seek help ininteracting with the mobile application.

During the video chat session, the communications system enables thesupport representative to assist by allowing the support terminal topush a display element to the mobile device. A display element maycontain information to be viewed or a function to be performed at themobile device. For example, the display element can comprise a videoproviding information about a particular service. Alternatively, thedisplay element may contain an interactive feature, such as a fillableform. In one or more embodiments, the communications system provides thedisplay element on the mobile device while concurrently providing thevideo chat via a multi-pane display of the single mobile application. Inthis way, the user may receive further assistance while reviewing orinteracting with the display element.

More particularly, the communications system initiates a video chatsession by establishing a first connection between a mobile device and asupport terminal. Once established, the communications system conducts avideo chat transmitted through the first connection and provides thevideo chat for display to both the support terminal and the mobiledevice. A user of the mobile device and a support representative usingthe support terminal may then communicate with one another.

Additionally, one or more embodiments of the communications systemenable the support terminal to push a display element to the mobiledevice. For example, in at least one embodiment, the support terminalselects a display element from a set of selectable display elementsstored on the support terminal and subsequently pushes the displayelement to the mobile device. The communications system may transmit thedisplay element to the mobile device through a second connection. Forexample, the communication system uses a second connection, separatefrom the first connection to send the display element. One willappreciate in light of the disclosure herein that the use of a separateconnection allows the support terminal to push the display element, usesless computing resources, and avoids degrading the video chat.

In response to the mobile device receiving the display element, themobile application divides a display of the mobile device into multiplepanes (e.g., two or more panes). In at least one embodiment, the mobileapplication divides the display into at least a first pane and a secondpane. The communications system then provides the video chat in thefirst pane while concurrently providing the display element in thesecond pane.

By concurrently providing a video chat and a display element, thecommunications system enables a support representative to moreeffectively guide a user of a mobile device through the entire processof interacting with a mobile application. In this way, the user avoidsnavigating an unfamiliar mobile application and, as a result, avoidspossible frustration. Additionally, by using a connection that providesbidirectional communication, the support terminal provides theinformation or function directly to the mobile device. Bidirectionalcommunication gives the communications system advantages over a moretraditional system in which a client device polls a server for data. Insuch traditional systems, a server may not initiate communication with amobile device, but may only respond to a request. Using a bidirectionalconnection, the communications system allows the support terminal toimmediately provide an available display element to the mobile device,rather than wait for a request. Thus, one or more embodiments providefor quicker processing/sending of display elements to a mobile device.

Further, the mobile device displays the video chat and the displayelement concurrently using the same mobile application, and thus,requires fewer computer resources than a conventional system—such asmemory, processing power, and display space—thus allowing a limited setof computer resources to perform functions faster than before. Inparticular, a user need not have a separate video chat applicationrunning together with the mobile application.

Though the discussion herein includes implementations of the methods andsystems in the context of a mobile banking application, it will beappreciated that this context is merely illustrative and that the usesof the methods and systems described extend beyond a banking applicationto other non-banking mobile applications.

FIG. 1 illustrates an example implementation of a communications system100 (or simply “system 100”). As illustrated in FIG. 1, the system 100comprises a support terminal 102, a mobile device 104, communicationserver(s) 106, a peer-to-peer connection 108, and a Websocket server110. As is also illustrated in FIG. 1, a support representative 112 anda mobile device user 114 may interact with the support terminal 102 andthe mobile device 104 respectively in order to access content on therespective devices and communicate with one another.

As shown in FIG. 1, the system 100 includes the support terminal 102.The support terminal 102 may comprise a computing device, such as thosedescribed below in relation to FIG. 10. For example, the supportterminal 102 may comprise one or more personal computers, laptopcomputers, mobile devices, mobile phones, tablets, special purposecomputers, televisions, or other computing devices.

The mobile device 104 may comprise any mobile computing device, such asthose described below in relation to FIG. 10. In one or moreembodiments, the mobile device 104 includes a handheld client device. Asused herein the term “handheld device” refers to a device sized andconfigured to be held/operated in a single hand of a user. For example,the mobile device 104 can include a smartphone, a tablet computingdevice, or other mobile computing device.

Additionally, the system 100 also includes the communications server(s)106. The communications server(s) 106 may store, receive, and transmitany type of data, including a display element, a video data, or a videochat request. For example, the communications server(s) 106 may receiveand transmit a request for a video chat from the mobile device 104 tothe support terminal 102. The communications server(s) 106 can alsotransmit video data between one or more devices, such as the supportterminal 102 and the mobile device 104.

As illustrated, the communications server(s) 106 serves to establish aconnection between the support terminal 102 and the mobile device 104.For example, the communications server(s) 106 may establish a connectionin response to a video chat request sent by the mobile device 104. Inparticular, the communications server(s) 106 establish the connection toallow transmission of a video chat between the support terminal 102 andthe mobile device 104. For example, once the communications server(s)106 establishes the connection, the system 100 conducts a video chatbetween the support terminal 102 and the mobile device 104 through theconnection. The support representative 112 and the mobile device user114 may interact with the support terminal 102 and the mobile device 104respectively to communicate with one another via the video chat.

As illustrated, in one or more embodiments, the communication server(s)106 comprises one server. Alternatively, the communications server(s)106 may comprise a series of servers. For example, the communicationsserver(s) 106 may comprise a video load balance server, a signalingserver, and a STUN/TURN server. The video load balance server serves todirect communications to an available support terminal, the signalingserver notifies the available support terminal of a video chat request,and the STUN/TURN server serves to work through secure firewalls toestablish the connection. Alternatively, any other combinations andtypes of servers sufficient to establish a connection may be used aspart of the communication server(s) 106.

As illustrated, the system 100 also includes the peer-to-peer connection108. The peer-to-peer connection 108 serves as a direct connectionbetween the support terminal 102 and the mobile device 104. In one ormore embodiments, the peer-to-peer connection 108 may serve tosubstitute the communication(s) servers 106. In particular, after thecommunication(s) server 106 establishes the connection between thesupport terminal 102 and the mobile device 104, the system 100 maysubsequently establish the peer-to-peer connection 108 and conduct thevideo chat over the peer-to-peer connection. As used herein, apeer-to-peer (P2P) connection is created when two or more clientcomputing devices are connected and share resources without goingthrough a separate server computing device (like the communicationserver(s) 106).

The peer-to-peer connection 108 can provide a solution to bandwidthlimitations that restrict the maximum number of concurrent video streamspossible through the communication server(s) 106. The peer-to-peerconnections, where possible, maximize the number of possiblesimultaneous video calls.

In one or more embodiments, the communication server(s) 106 may firstdetermine if the peer-to-peer connection 108 is available. For example,the peer-to-peer connection 108 may be unavailable due to limitations orthe configuration of the hardware or software within the system 100. Forexample, video relays between client devices on restrictive networks andfirewalls are often blocked. Network address translation limits theclient device's ability to have peer-to-peer connections. In one or moreembodiments, the system detects when a peer-to-peer connection is notpossible. If the communication server(s) 106 determines that thepeer-to-peer connection 108 is not available, then the communicationsserver(s) 106 may maintain (or reroute) the connection for the videochat via the communication servers(s) 106. In an alternative embodiment,the communications server(s) 106 may maintain the first connectionwhether or not the peer-to-peer connection 108 is available.

As is also illustrated in FIG. 1, the system 100 may also include theWebsocket server 110. The Websocket server 110 may generate, store,receive, and transmit any type of data, including a display element (notshown). For example, the Websocket server 110 may receive and push adisplay element sent from the support terminal 102 to the mobile device104.

As FIG. 1 illustrates, the Websocket server 110 provides a secondconnection between the support terminal 102 and the mobile device 104.In particular, the Websocket server 110 provides a bidirectionalconnection, also known as a full-duplex connection, enabling supportterminal 102 to push data to the mobile device 104, rather thanrequiring support terminal 102 to wait for a request from the mobiledevice 104, as is done in some traditional client/server systems. ThoughFIG. 1 illustrates an embodiment where the second connection isestablished through a Websocket server 110, one with ordinary skill inthe art will appreciate that any type of server or device that enablesthe support terminal 102 to push a display element to the mobile device104 can be used as a substitute for the Websocket server 110.

FIG. 1 further illustrates an embodiment where the second connection isa persistent connection, consistently maintained by the Websocket server110 after it has been established. A persistent second connection may beestablished before, after, or at the same time the first connection isestablished. One or more embodiments of the system 100 may wait untilthe support terminal 102 initiates transmission of a first displayelement before it establishes the second connection through theWebsocket server 110. As an alternative to a persistent secondconnection, the system 100 may create the second connection through theWebsocket server 106 only when required to transmit a data from thesupport terminal 102 to the mobile device 104. In this alternativeembodiment, system 100 may wait until the support terminal 102 initiatestransmission of data to the mobile device 104. When the transmission isinitiated, the system 100 then creates the second connection through theWebsocket server 106, waits until the transmission terminates, and thensevers the second connection.

FIG. 2 illustrates a mobile device 200 displaying an application userinterface 202 operable to allow the mobile device user 114 to interactwith the mobile application in accordance with one or more embodiments.The application user interface 202 includes a heading portion 204, acustomer support portion 206, and a navigation portion 208. In alternateembodiments, the application user interface 202 may include any otherportions relevant to the mobile application.

Heading portion 204 of application user interface 202 provides generalinformation and options for the user 114. FIG. 2 illustrates headerportion 204 providing a title 210 and a menu 212. The title 210 providesthe title of the business but may alternatively provide the name of themobile application or any other title deemed sufficient for the purposesof the mobile application. The menu 212 provides a drop down menu withpre-selected options for interacting with the mobile application. Forexample, the drop down menu provides the user 114 with an option oflogging into a user account or navigating to a home page of the mobileapplication. In one or more alternative embodiments, menu 212 may bereplaced with links in the header portion 204 providing the user 114with similar options.

Customer support portion 206 an option to contact a supportrepresentative 112 to receive assistance. For example, a user who isunfamiliar with a mobile application may need assistance in findinginformation or performing a desired function. By way of illustration, inthe context of a mobile banking application, the user may require helpin finding account balances, performing a check deposit, making a creditcard payment, or interacting with the mobile application in another way.

As illustrated in FIG. 2, the customer support portion 206 includesmultiple selectable buttons the user 114 can select to contact a supportrepresentative 112. For example, the customer support portion 206 ofFIG. 2 includes a video chat button 214, a text chat button 216, and aphone call button 218, which the mobile application may use to initiatea video chat, a text chat, or a phone call respectively. In response toa selection, the mobile device 200 sends a request to initiate acommunications session of the type associated with the button. Forexample, by selecting the video chat button 214, the mobile device 200sends a request to begin a video chat session with the supportrepresentative 112.

Alternatively, the customer support portion 206 may include otherselectable buttons to contact the support representative 112, such as anoption to e-mail or send a voice-recorded message. It will also beappreciated that any number of selectable buttons may be present in thecustomer support portion 206 in any combination. To illustrate, thecustomer support portion 206 may include selectable buttons for videochat, text chat, phone call, and email message, or the customer supportportion 206 may only include the video chat button 214.

The navigation portion 208 presents the user 114 with quick navigationaloptions. For example, the navigation portion 208 of FIG. 2 presentsoptions to navigate to a page comprising information on accounts 220,information on home loans 222, or information on car loans 224. In oneor more embodiments, other options deemed useful to the user 114 mayalso be present.

As mentioned previously, one or more embodiments include a video chatbetween a mobile device 104, 200 and a support terminal 102. FIG. 3illustrates a flowchart of a series of acts in a method 300 ofinitiating a video chat connection between a mobile device 104, 200 anda support terminal 102 in accordance with one or more embodiments. Themethod 300 is performed in a hardware environment that includes thesystem 100. The method 300 is intended to be illustrative of one or moremethods in accordance with the present disclosure, and is not intendedto limit potential embodiments. Alternative embodiments can includeadditional, fewer, or different steps than those articulated in FIG. 3.

As illustrated in FIG. 3, the method 300 includes an act 310 of sending,from a mobile device 104, 200, a request to initiate a video chat. Therequest can initially be processed by a series of one or more servers,such as the communication server(s) 106 of FIG. 1. As discussed above,the communication server(s) 106 may contain a load balance server, asignaling server, and a STUN/TURN server. Alternatively, the request maybe sent through a single server that performs the same functionality asthe combination of servers. In particular, the act 310 includes sendinga request from the mobile device 104, 200 to initiate a video chatbetween the mobile device 104, 200 and a support terminal 102.

Moreover, as illustrated in FIG. 3, the method 300 also includes an act320 of a receiving the request to initiate a video chat. Furthermore,FIG. 3 illustrates that the method 300 also includes an act 330 ofestablishing a video chat between the mobile device and a supportterminal. In particular, the act 330 comprises establishing a firstconnection between the mobile device and the support terminal, andconducting a video chat transmitted across the first connection. Inparticular, the first connection can comprise a connection establishedthrough the communication server(s) 106.

As shown in FIG. 3, the method 300 also includes the act 340 ofdetermining whether a peer-to-peer connection is available between themobile device 104, 200 and the support terminal 102. In response todetermining that a peer-to-peer connection is available, the method 300proceeds to the act 350 of establishing a peer-to-peer connectionbetween the mobile device 104, 200 and the support terminal 102. Inparticular, the act 350 switches the video chat from being conducted viaa communication connection through the communication server(s) 106 to apeer-to-peer connection. In one or more embodiments, the act 350 mayinclude severing the connection through communication server(s) 106after the peer-to-peer connection has been established between themobile device 104, 200 and the support terminal 102. One will appreciatein light of the disclosure herein that the use of a peer-to-peerconnection to conduct the video chat can reduce system resources needfor the video chat, provide greater flexibility, and in some cases allowfor quicker communication between the the mobile device 104, 200 and thesupport terminal 102.

Alternatively, in response to determining that a peer-to-peer connectionis not available, the method 300 proceeds to the act 360 of maintainingthe video chat through the communication server(s) 106. In one or moreembodiments, the video chat may be maintained through the series ofservers whether or not a peer-to-peer connection is available.

FIG. 4 illustrates a mobile device 400 displaying a video chat interface402 after a video chat has been established between a mobile device anda support terminal. The video chat interface 402 includes a headingportion 404, a session information portion 406, a video chat displayportion 408, and a session control portion 410. As illustrated in FIG.4, the video chat interface 402 utilizes the entirety of the mobiledevice display screen 412. In one or more alternative embodiments, thevideo chat interface utilizes less than the entirety of the mobiledevice display screen 412 in response to receiving a default displayelement (not shown) from a support terminal immediately after the videochat is established.

As illustrated in FIG. 4, the session information portion 406 of thevideo chat interface 402 displays information regarding the video chatsession conducted between the mobile device and the support terminal. Inparticular, the session information portion 406 includes a time-keepingportion 414, a support representative identity portion 416, and aconnection status portion 418. The time-keeping portion 414 displays theduration of the current video chat session. The support representativeidentity portion 416 displays the name of the support representativeengaging in the video chat session. The connection status portion 418displays the status of the connection between the mobile device and thesupport terminal. In one or more embodiments, the connection statusportion 418 can indicate whether the video chat is being conducted via apeer-to-peer connection or not.

As illustrated in FIG. 4, the video chat display portion 408 includes asupport representative display 420 and a mobile device user display 422.In particular, the support representative display 420 displays videocontent captured by the support terminal. The mobile device user display422 displays video content captured by a camera 424 of the mobile device400. As shown in FIG. 4, mobile device user display 422 is displayed ina lower right corner of the video chat display portion 408.Alternatively, the mobile device user display 422 may be displayed inany other location of the video display portion 408. In one or moreembodiments, the mobile device user display 422 may be relocated to anylocation in response to detecting a user interaction. For example, auser may select and, with a dragging motion, relocate the mobile deviceuser display 422 to any other location.

As further illustrated in FIG. 4, the session control portion 410 of thevideo chat interface 402 includes a session end option 426 and amicrophone mute option 428. Alternatively, one or more embodiments mayinclude other options, such as a record option to record the audiocontent, visual content, or both from the video chat session.

Once a video chat established between the mobile device and the supportterminal, the support representative may desire to send a displayelement to the user of the mobile device. FIGS. 5A-5F provide variousexemplary embodiments of a mobile device 500 displaying a dual panedisplay 502 in response to receiving a display element 504 a-504 f froma support terminal. In particular, as part of receiving the displayelement, the mobile device 500 receives a trigger that causes the mobiledevice 500 to initiate the dual pane display. The trigger can comprise apiece of JavaScript or other code, that when received by the mobiledevice, causes the mobile device to split the display into multiplepanes. More specifically, the trigger can cause the mobile device 500 toexecute code previously installed on the mobile device 500 as part ofthe mobile application. Such code can cause the mobile device 500 toprovide multiple panes as described hereinafter.

As illustrated in FIGS. 5A-5F, the mobile devices 500 divides the mobiledevice display screen 506 into a first pane 508 and a second pane 510(in alternative embodiments there may be more than 2 panes). Asillustrated, the mobile devices provides the video chat in the firstpane 508 and the display element 504 a-5 f in the second pane 510.Alternatively, the mobile device 600 may divide the display screen 506into three or more panes in response to receiving multiple displayelements simultaneously or in response to receiving a display elementformatted to use multiple panes.

In one or more embodiments, a mobile device user may choose to accept orreject the display element before it is displayed in the second pane510. For example, in response to receiving a display element 504 a-504 fand the accompanying trigger, the display screen 506 may divide into afirst pane 508 and a second pane 506. A screen may be subsequentlyprovided in the second pane 510, displaying selectable options to theuser of the mobile device 500 to either accept or reject the displayelement. The display element 504 a-504 f will display in the second pane510 only when the user selects to accept it. Otherwise, if the userchooses to reject the display element 504 a-504 f, the first pane 508and the second pane 510 may converge back into a single display (such asthat shown in FIG. 4).

Additionally, the mobile device 500 may modify the size of the firstpane 508 and the second pane 510 on the display screen 506 or of anyother panes based on the display element received. For example, thedisplay element received may require more than half of the displayscreen 506. As a result, the display screen 506 will divide into a firstpane 508 and a second pane 510, wherein the first pane 510 fills themajority of the display space of the display screen 506 and the firstpane 508 fills the remaining space available.

In one or more embodiments, a mobile device user may modify the displayelements 504 a-504 f Alternatively, a display element may be static andonly meant for viewing. In one or more embodiments, providing andmodifying a display element 504 a-504 f may occur independent of anyinteraction with the video chat provided in the first pane 508.

The display element 504 a illustrated in FIG. 5A is an informationalslide comprising a text portion 512 and a video portion 514. The displayelement 504 a provides exemplary information regarding a banking serviceprovided by the mobile application. By way of illustration, the displayelement 504 a displays information regarding mortgage rates.

The video portion 514 plays an informational video in response to a userinteraction. For example, the video portion 514 plays the video inresponse to detecting a user selection of a play button 516.Additionally, or alternatively, the video portion 514 may play the videoin response to detecting a user swiping gesture or a user voice command.Alternatively, the video portion 514 may play the video immediatelyafter the display element 504 a is displayed on the second pane 510. Oneor more alternative embodiments may comprise an informational displayelement comprising only an informational slide or document or only aninformational video. Additionally, or alternatively, the informationalslide can comprise images separate from or in addition to anyinformational text.

FIG. 5B illustrates another embodiment of the mobile device 500displaying a dual pane display 502. In particular, the mobile device 500provides a display element 504 b in the second pane 510 with aninterface for capturing multiple images for check deposit. Inparticular, display element 504 b comprises a first button 518 and asecond button 520, wherein the first button designates a captured imageas a front view of a check and the second button 520 designates acaptured image as a back view of a check. Upon detecting a userselection of the first button 518 or the second button 520, the videochat provided in the first pane 508 overlays the display of the videochat with a viewfinder display (not shown), wherein the viewfinderdisplay provides a representation of image data captured by a camera(camera on back of device not shown) of the mobile device 500.Alternatively, when mobile device 500 receives display element 504 b, itmay also receive a camera trigger that immediately activates the cameraand overlays the video chat in the first pane 508 with the viewfinderdisplay.

While the first pane 508 provides the viewfinder mode, the video chatmay be continuously received by the mobile device 500. Alternatively,the visual data from the video chat may temporarily cut off until a userindicates that capturing images is done. Additionally, or alternatively,the audio from the video chat transmission is still available while themobile device user captures the images, so that the supportrepresentative may guide the mobile device user through the process.

An image of the check captured by the mobile device 500 is automaticallysent to the support terminal for verification and check deposit.Alternatively, in one or more embodiments, the display element 504 b mayinclude an additional button for sending an image file that has beencaptured to the satisfaction of the mobile device user.

One skilled in the art will appreciate that display element 504 b mayfunction to capture images of documents other than checks and that FIG.5B is provided only as an illustration. For example, in one or moreembodiments, the display element 504 b may enable a user to capture animage of a contract, identification, or any other document that may berequired by the support representative.

FIG. 5C illustrates yet another embodiment of the mobile device 500displaying a dual pane display 502. In particular, the mobile device 500provides a display element 504 c in the second pane 510 that is asignature pad enabling a user to enter a signature. In particular, thedisplay element 504 c comprises a signature line 522, an accept button524, and a reject button 526. The display element 504 c changes, inresponse to detecting a user interaction along the signature line 522, asignature of the mobile device user. For example, a user may use afinger or a stylus to enter a signature upon the signature line 522.After entering the signature, the mobile device user may select toaccept or reject the signature. Upon detecting a selection of the acceptbutton 524, the signature is sent to the support terminal. Upondetecting a selection of the reject button 526, the signature line 522is cleared for the mobile device user to sign again.

FIG. 5D illustrates yet another embodiment of the mobile device 500displaying a dual pane display 502. In particular, the mobile device 500provides a display element 504 d in the second pane 510 that is afillable form that enables the mobile device enter input into the form.In particular, the display element 504 d comprises fillable lines 528a-528 c. By way of illustration, fillable lines 528 a-528 c instruct auser to input a first name, a last name, and an address, respectively;but it will be appreciated that the display element 504 d may instruct auser to input other types of information as well. For example, thedisplay element 504 d may ask for a user's birthday, state of residence,or driver's license number.

Upon detecting a user selection of one of fillable lines 528 a-528 c,the display element 504 d presents the mobile device user with analphanumeric keypad for entering information into the correspondingline. Additionally, or alternatively, display element 504 d may presentthe user with a list of optional inputs where there are a limited numberof inputs available or acceptable. For example, if a fillable lineinstructed a user to input a state of residence, upon selecting thatfillable line to input the information, the display element 504 d maypresent the user with a list of states that may be chosen for input.Additionally, or alternatively, the display element 504 d may acceptinformation through voice command, wherein the user may vocally inputthe information requested.

It will also be appreciated by one of skill in the art that the fillableform of the display element 504 d may require information in addition towhat may be displayed on a single pane. Therefore, in one or moreembodiments, the display element 504 d may be scrollable, wherein a usermay scroll in a direction of information or fillable lines in additionto those currently presented so the additional fillable lines may beviewed and interacted with to enter information. Alternatively, thedisplay element 504 d may provide a fillable form on multiple pages andpresent a user with button options to view a subsequent or previous pageof fillable lines and information.

FIG. 5E illustrates yet another embodiment of the mobile device 500displaying a dual pane display 502. In particular, the mobile device 500provides a display element 504 e in the second pane 510 comprises termsand acceptance clauses accompanied by an option to accept or reject theterms.

FIG. 5F illustrates yet another embodiment of the mobile device 500displaying a dual pane display 502. In particular, the mobile device 500provides a display element 504 f in the second pane 510 is a text-basedmessaging interface enabling a user to enter in and send a text-basedmessage to a support terminal. Additionally, the display element 504 fmay receive and display text-based messages from the support terminal.

It will be appreciated by one skilled in the art that a display elementmay comprise elements of the display elements 504 a-504 f individuallyor in combination with one or more other display elements. For example,in one or more embodiment the support terminal can generate and send acomputer-readable code, such as a bar code or a Quick Response Code. Thecomputer-readable code, when scanned, can cause another device toperform an action. For example, the computer-readable code, when scannedby an ATM, can cause the ATM to disperse a predetermined amount offunds.

It will also be appreciated, as discussed above, that a display elementmay comprise more information or modifiable elements than can bepresented on a single pane. Therefore, in one or more embodiments, thedisplay elements 504 a-504 f may be scrollable, wherein a user mayscroll in a direction where information or modifiable elements inaddition to those currently presented may be viewed and interacted withto enter information. Alternatively, the display elements 504 a-504 fmay provide information or interactive elements on multiple pages andpresent a user with button options to view a subsequent or previouspage.

FIG. 6 illustrates an example implementation of a communications system600 (or simply “system 600”) used to send a modified display element oranother replay to a display element. As illustrated in FIG. 6 the system600 comprises a mobile device 602, a server 604, a database repository606, a Websocket server 608, and a support terminal 610.

The system 600 establishes a connection between the mobile device 602and the database repository 606 through the server 604. The connectionis a third connection in addition to the first and second connectionsdiscussed with respect to the system 100 of FIG. 1. The server 604enables the mobile device 602 to securely transmit a modified displayelement to the database repository 606. As illustrated in FIG. 6, theserver 604 is a single server. Alternatively, the third connection maybe made through a series of servers.

After receiving a modified display element, the server 604 forwards themodified display element to the database repository 606 and sends anotification to the support terminal 610 through the Websocket server608. In one or more alternative embodiments, the notification may besent to the support terminal directly from the mobile device 602. Thenotification indicates that the database repository 606 has received themodified display element and provides a location of the element withinthe database repository 606 so the support terminal 610 may grab themodified element. Additionally, or alternatively, the notification mayinclude a link to the location of the modified display element, enablingthe support terminal 610 to quickly acquire the modified element.

The database repository 606 may comprise any service that allows for thedeposit and retrieval of electronic files. For example, the databaserepository 606 may be an electronic drop box, email service, or othercloud-based technology that allows electronic file sharing.

As shown by FIG. 6, the system can utilize cloud hosting (i.e., thedatabase can comprise one or more cloud based servers). This type ofcloud hosting allows for flexibility and scalability. New instances ofservers can be created quickly and efficiently to ensure the systemscales the use of the application as adoption rates increase. Thus,embodiments of the present disclosure can also be implemented in cloudcomputing environments. In this description, “cloud computing” isdefined as a model for enabling on-demand network access to a sharedpool of configurable computing resources. For example, cloud computingcan be employed in the marketplace to offer ubiquitous and convenienton-demand access to the shared pool of configurable computing resources.The shared pool of configurable computing resources can be rapidlyprovisioned via virtualization and released with low management effortor service provider interaction, and then scaled accordingly.

A cloud-computing model can be composed of various characteristics suchas, for example, on-demand self-service, broad network access, resourcepooling, rapid elasticity, measured service, and so forth. Acloud-computing model can also expose various service models, such as,for example, Software as a Service (“SaaS”), Platform as a Service(“PaaS”), and Infrastructure as a Service (“IaaS”). A cloud-computingmodel can also be deployed using different deployment models such asprivate cloud, community cloud, public cloud, hybrid cloud, and soforth. In this description and in the claims, a “cloud-computingenvironment” is an environment in which cloud computing is employed.

Turning now to FIG. 7, additional detail will be provided regardingcomponents and capabilities of one embodiment of the present inventioncomprising the communications system 100 as well as the communicationssystem 600. In particular, FIG. 7 illustrates an embodiment of anexemplary system 700. As shown, the system 700 may include, but is notlimited to, a mobile device 702, a server system 704, and a supportterminal 706. Moreover, as shown, the mobile device 702 includes, but isnot limited to, a connection manager 708, a video chat manager 710, adisplay manager 712, a display element manager 714, a user inputdetector 716, a user interface manager 718, and a mobile device storagemanager 720. Additionally, as shown in FIG. 7, the server system 704includes, but is not limited to, a connection manager 722, a video chatmanager 724, a display manager 726, a Websocket 728, and a databaserepository 730. Furthermore, as shown in FIG. 7, the support terminal706 includes, but is not limited to, a connection manager 732, a videochat manager 734, a display element storage manager 736, and a displayelement transmitter 738.

As just mentioned, and as illustrated in FIG. 7, the mobile device 702includes the connection manager 708. The connection manager 708 searchesfor, detects, identifies, accepts, establishes, monitors, and maintainsvarious types of connections. In particular, the connection manager 708establishes and maintains one or more connections between the mobiledevice 702 and another device, such as the support terminal 706. Forexample, when establishing a video chat between the mobile device 702and the support terminal 706, the connection manager 708 will establishand maintain a peer-to-peer connection through the duration of a videochat session.

As mentioned, and as illustrated in FIG. 7, the mobile device 702 alsoincludes the video chat manager 710. The video chat manager 710initiates, provides for display, and maintains a video chat between themobile device 702 and another device, such as the support terminal 706.In particular, the video chat manager 710 operates in conjunction withthe connection manager 708 to establish and maintain a video chatbetween the mobile device 702 and another device, such as a supportterminal 706.

Additionally, the video chat manager 710 operates in conjunction withany number of user input/output devices, including, but not limited tocameras, microphones, display screens, touchscreens, and keypads.

As mentioned, and as illustrated in FIG. 7, the mobile device 702 alsoincludes the display manager 712. The display manager 712 maintains andchanges a display presented on the mobile device 702. In particular, thedisplay manager 712 works in conjunction with the user input detector716 to change a display of the mobile device in response to detecting auser interaction. Additionally, the display manager 712 works inconjunction with the user interface manager 718 to display a graphicaluser interface.

The display manager 712 also changes the display of the mobile device702 in response to receiving triggering code through a connection toanother device. For example, the display manager 712 may receivetriggering code over a connection. In response to receiving thetriggering code, the display manager 712 can divide the display of themobile device 702 into multiple panes, enabling the mobile device 702 todisplay multiple display items within the multiple panes. As referred toherein, a “display item” refers to any visual component (e.g. character,image, video, or user interface) For example, the mobile device 702 maybe able to display separate mobile applications in the multiple panes orthe mobile device may display a video chat in one pane and a displayelement in another.

Additionally, the display manager 712 may modify the size of themultiple panes according to the needs of the items displayed withinthose panes. In particular, the display manager 712 may increase thesize of a pane if the display item within the pane requires more displayspace.

As mentioned, and as illustrate in FIG. 7, the mobile device 702 alsoincludes the display element manager 714. The display element manager714 receives, sends, and provides for display elements. In particular,the display element manager operates in conjunction with the displaymanager 712 to display a display element on the mobile device 702.

Additionally, the display element manager 714 modifies and maintainsdisplay elements. In particular, the display element manager operates inconjunction with the user input detector 716 to detect a user input. Inresponse to detecting a user input, the display element manager 714modifies the display element in accordance to the particular userinteraction.

As mentioned, and as illustrated in FIG. 7, the mobile device 702 alsoincludes the user input detector 716. The user input detector 716detects, identifies, monitors, receives, processes, captures, and/orrecords various types of user input. For example, the user inputdetector 716 detects one or more user interactions with respect to auser interface. As referred to herein, a “user interaction” refers toconduct performed by a user (or a lack of conduct performed by a user)to control the function of a computing device. “User input,” as usedherein, refers to input data generated in response to a userinteraction.

The user input detector 716 operates in conjunction with any number ofuser input devices (in isolation or in combination), mouse devices,keyboards, track pads, or stylus devices. The user input detector 716detects and identifies various types of user interactions with userinput devices, such as select events, drag events, scroll events, and soforth. For example, the user input detector 716 detects one or moretouch gestures (e.g., swipe gestures, tap gestures, pinch gestures, orreverse pinch gestures) from a user that forms a user interaction.

The user input detector 716 communicates with, and thus detects userinput with respect to, a variety of programs, applications, plug-ins,operating systems, user interfaces, or other implementations in softwareor hardware.

As mentioned, and as illustrated in FIG. 7, the mobile device 702 alsoincludes the user interface manager 718. The user interface manager 718provides, manages, and/or controls a graphical user interface (or simply“user interface”) for use with the system 700. In particular, the userinterface manager 718 can facilitate presentation of information by wayof an external component of the mobile device 702. For example, the userinterface manager 718 can display a user interface by way of a displayscreen associated with the mobile device 702. The user interface may becomposed of a plurality of graphical components, objects, and/orelements that allow a user to perform a function. The user interfacemanager 718 presents, via the mobile device 702, a variety of types ofinformation, including text, images, video, audio, characters, or otherinformation. Moreover, the user interface manager 718 provides a varietyof user interfaces specific to any variety of functions, programs,applications, plug-ins, devices, operating systems, and/or components ofthe mobile device 702.

The user interface manager 718 can provide a user interface with regardto a variety of operations or applications. For example, the userinterface manager 718 provides a user interface that facilitatesselecting, identifying, searching, or downloading digital files.Similarly, the user interface manager 718 can generate a user interfacethat facilitates managing, editing, modifying, downloading, uploading,or sending digital images. Additional details with respect to variousexample user interface elements are described throughout with regard tovarious embodiments containing user interfaces.

In addition, as illustrated in FIG. 7, the mobile device 702 alsoincludes the client device storage manager 720. The client devicestorage manager 720 maintains data for the system 700. The client devicestorage manager 722 can maintain data of any type, size, or kind, asnecessary to perform the functions of the system 700.

Furthermore, as illustrated in FIG. 7, the server system 704 includesthe connection manager 722. The connection manager 722 searches for,detects, identifies, accepts, establishes, monitors, and maintainsvarious types of connections. In particular, the connection manager 722establishes and maintains one or more connections between devices. Forexample, the connection manager 722 may establish a connection betweenthe mobile device 702 and the support terminal 706.

As mentioned, and as illustrated in FIG. 7, the server system 704 alsoincludes the video chat manager 724. The video chat manager 724establishes, receives, transmits, and maintains a video chat betweenmultiple devices. For example, the video chat manager 724 may establishand maintain a video chat between the mobile device 702 and anotherdevice, such as the support terminal 706. In particular, the video chatmanager 724 operates in conjunction with the connection manager 722 toestablish and maintain a video chat across a connection maintained byserver system 704.

As mentioned, and as illustrated in FIG. 7, the server system 704 alsoincludes the display manager 726. The display manager 726 receives andtransmits items for display on devices. In particular, the displaymanager 726 can transmit items sent from one device to another device.For example, the display manager 726 can transmit a display element sentfrom the support terminal 706 to be displayed on the mobile device 702.

As mentioned, and as illustrated in FIG. 7, the server system 704 alsoincludes the Websocket 728. The Websocket 728 is a bidirectionalcommunication module that enables a device acting as a server to pushdata to a client device, rather than waiting for the client device tosend a request for data, which the server then fills. In particular, theWebsocket 728 operates in conjunction with the display manager 726 toenable a device acting as a server to push items for display to a deviceacting as a client. For example, the Websocket 728 and the displaymanager 726 work in conjunction to enable the support terminal 706 topush a display element for display to the mobile device 702.

As mentioned, and as illustrated in FIG. 7, the server system 704 alsoincludes the database 730. The database 730 operates as a databaserepository to store data for retrieval. The database 730 can operate asan electronic cloud storage system (e.g. an electronic drop box). Inparticular, the database 730 stores data for retrieval from a device.For example, the database 730 can store a modified display elementreceived from the mobile device 702 until it is overwritten or retrievedby the support terminal 706.

Furthermore, as illustrated in FIG. 7, the support terminal 706 includesthe connection manager 732. The connection manager 732 searches for,detects, identifies, accepts, establishes, monitors, and maintainsvarious types of connections. In particular, the connection manager 732establishes and maintains one or more connections between the supportterminal 706 and another device, such as the mobile device 702. Forexample, when establishing a video chat between the mobile device 702and the support terminal 706, the connection manager 732 will establishand maintain a peer-to-peer connection through the duration of the videochat session.

As mentioned, and as illustrated in FIG. 7, the support terminal 706also includes the video chat manager 734. The video chat manager 734initiates, provides for display, and maintains a video chat between thesupport terminal and another device, such as the mobile device 702. Inparticular, the video chat manager 734 operates in conjunction with theconnection manager 732 to establish and maintain a video chat betweenthe support terminal 706 and another device, such as a mobile device702.

Additionally, the video chat manager 732 operates in conjunction withany number of user input/output devices, including, but not limited tocameras, microphones, display screens, touchscreens, and keypads.

As mentioned, and as illustrated in FIG. 7, the support terminal 706also includes the display element storage manager 736. The displayelement storage manager 736 stores display elements that may be selectedand transmitted to another device, such as the mobile device 702. Inparticular, the display element storage manager 736 operates inconjunction with the display element transmitter 738 and the connectionmanager 732 to transmit a display element across a connection.

As mentioned, and as illustrated in FIG. 7, the support terminal 706also includes the display element transmitter 738. The display elementtransmitter 738 operates to transmit a display element across aconnection to another device.

FIG. 8 illustrates a flowchart of a series of acts in a method 800 ofimplementing a dual pane display on a mobile device in accordance withone or more embodiments of the present invention. As illustrated in FIG.8, the 800 can include an act 810 of establishing a first connectionbetween the mobile device and a support terminal. In particular, the act810 can include sending a request for a video chat through a series ofservers, establishing the first connection between the mobile device andthe support terminal, establishing a peer-to-peer connection between themobile device and the support terminal, and maintaining the firstconnection through the peer-to-peer connection. Alternatively, if apeer-to-peer connection is not available, the series of servers maymaintain the first connection.

As shown in FIG. 8, the method 800 also includes an act 820 ofconducting a video chat transmitted through the first connection. Inparticular, the act 820 conducts the video chat transmitted through thepeer-to-peer connection. Alternatively, if the series of servers aremaintaining the video chat, the act 820 conducts the video chattransmitted through the series of servers.

As shown in FIG. 8, the method 800 also includes an act 830 of receivinga display element through a second connection. The act 830 can includereceiving a trigger through the second connection and executing, codestored on the mobile device, in response to receiving the trigger, toactivate a capability of the mobile device. As referred to herein, a“capability” of a mobile device refers to a function of a mobile devicethat is available externally from the mobile application implementingmethod 800 (e.g. operating a camera or composing a text-based message).Additionally, the second connection of the act 830 can be a connectionthrough a Websocket server.

As shown in FIG. 8, the method 800 also includes an act 840 of dividinga display screen of the mobile device into at least a first pane and asecond pane. The act 840 can include receiving a trigger, along withreceiving the display element in the act 830, and dividing the displayscreen in response. Alternatively, the act 840 may divide the displayscreen into more than two panes. For example, if multiple displayelements are received simultaneously, the act 840 may divide the displayscreen into three or more panes.

As further shown in FIG. 8, the method 800 also includes an act 850 andan act 860, wherein the act 850 provides the video chat in the firstpane and the act 860 provides the display element in the second pane. Itwill be appreciated, however, that both the video chat and the displayelement can be provided in any available pane just as effectively.

FIG. 9 illustrates a flowchart of series of acts in a method 900 ofimplementing a dual pane display on a support terminal in accordancewith one or more embodiments. As illustrated in FIG. 9, the method 900can include an act 910 of establishing a first connection between amobile device and a support terminal. Mirroring the act 810 of FIG. 8,the act 910 can include receiving a request for a video chat through aseries of servers, establishing the first connection between the mobiledevice and the support terminal, establishing a peer-to-peer connectionbetween the mobile device and the support terminal, and maintaining thefirst connection through the peer-to-peer connection. Alternatively, ifa peer-to-peer connection is not available, the series of servers maymaintain the first connection.

As shown in FIG. 9, the act 900 also includes an act 920 of providing avideo chat through the first connection. Similar to the act 820, the act920 conducts the video chat transmitted through the peer-to-peerconnection. Alternatively, if the series of servers are maintaining thevideo chat, the act 820 conducts the video chat transmitted through theseries of servers.

As shown in FIG. 9, the act 900 also includes an act 930 of selecting adisplay element. The act 900 can include selecting a display elementfrom a set of display elements stored on the support terminal.

Further, as shown in FIG. 9, the act 900 also includes an act 940 ofpushing the display element to the mobile device through a Websocketserver. In particular, the act 940 can include directly pushing adisplay element to the mobile device. Alternatively, the act 940 caninclude pushing a location of the display element to the mobile device,wherein the location can comprise a link to the database storing themobile device. Additionally, or alternatively, the act 940 can includepushing a trigger to the mobile device to initiate code stored on themobile device to activate a capability of the mobile device.

Thus, as described above, the system is a unique combination ofinteractive panes on a mobile or tablet device that can be changeddynamically through a web socket layer that is utilized to handle realtime communication actions between a second pane and the supportrepresentative sending the changes to the second pane. Further, eachsecond pane may change based on the action or function of arepresentative user interacting with a backend support center.Additionally, a first pane is continuously streaming audio and video tothe mobile device during the interactions with the second pane.

Embodiments of the present disclosure may comprise or utilize a specialpurpose or general-purpose computer including computer hardware, suchas, for example, one or more processors and system memory, as discussedin greater detail below. Embodiments within the scope of the presentdisclosure also include physical and other computer-readable media forcarrying or storing computer-executable instructions and/or datastructures. In particular, one or more of the processes described hereinmay be implemented at least in part as instructions embodied in anon-transitory computer-readable medium and executable by one or morecomputing devices (e.g., any of the media content access devicesdescribed herein). In general, a processor (e.g., a microprocessor)receives instructions, from a non-transitory computer-readable medium,(e.g., a memory, etc.), and executes those instructions, therebyperforming one or more processes, including one or more of the processesdescribed herein.

Computer-readable media can be any available media that can be accessedby a general purpose or special purpose computer system.Computer-readable media that store computer-executable instructions arenon-transitory computer-readable storage media (devices).Computer-readable media that carry computer-executable instructions aretransmission media. Thus, by way of example, and not limitation,embodiments of the disclosure can comprise at least two distinctlydifferent kinds of computer-readable media: non-transitorycomputer-readable storage media (devices) and transmission media.

Non-transitory computer-readable storage media (devices) includes RAM,ROM, EEPROM, CD-ROM, solid state drives (“SSDs”) (e.g., based on RAM),Flash memory, phase-change memory (“PCM”), other types of memory, otheroptical disk storage, magnetic disk storage or other magnetic storagedevices, or any other medium which can be used to store desired programcode means in the form of computer-executable instructions or datastructures and which can be accessed by a general purpose or specialpurpose computer.

A “network” is defined as one or more data links that enable thetransport of electronic data between computer systems and/or modulesand/or other electronic devices. When information is transferred orprovided over a network or another communications connection (eitherhardwired, wireless, or a combination of hardwired or wireless) to acomputer, the computer properly views the connection as a transmissionmedium. Transmissions media can include a network and/or data linkswhich can be used to carry desired program code means in the form ofcomputer-executable instructions or data structures and which can beaccessed by a general purpose or special purpose computer. Combinationsof the above should also be included within the scope ofcomputer-readable media.

Further, upon reaching various computer system components, program codemeans in the form of computer-executable instructions or data structurescan be transferred automatically from transmission media tonon-transitory computer-readable storage media (devices) (or viceversa). For example, computer-executable instructions or data structuresreceived over a network or data link can be buffered in RAM within anetwork interface module (e.g., a “NIC”), and then eventuallytransferred to computer system RAM and/or to less volatile computerstorage media (devices) at a computer system. Thus, it should beunderstood that non-transitory computer-readable storage media (devices)can be included in computer system components that also (or evenprimarily) utilize transmission media.

Computer-executable instructions comprise, for example, instructions anddata which, when executed at a processor, cause a general purposecomputer, special purpose computer, or special purpose processing deviceto perform a certain function or group of functions. In someembodiments, computer-executable instructions are executed on ageneral-purpose computer to turn the general-purpose computer into aspecial purpose computer implementing elements of the disclosure. Thecomputer executable instructions may be, for example, binaries,intermediate format instructions such as assembly language, or evensource code. Although the subject matter has been described in languagespecific to structural features and/or methodological acts, it is to beunderstood that the subject matter defined in the appended claims is notnecessarily limited to the described features or acts described above.Rather, the described features and acts are disclosed as example formsof implementing the claims.

Those skilled in the art will appreciate that the disclosure may bepracticed in network computing environments with many types of computersystem configurations, including, personal computers, desktop computers,laptop computers, message processors, hand-held devices, multi-processorsystems, microprocessor-based or programmable consumer electronics,network PCs, minicomputers, mainframe computers, mobile telephones,PDAs, tablets, pagers, routers, switches, and the like. The disclosuremay also be practiced in distributed system environments where local andremote computer systems, which are linked (either by hardwired datalinks, wireless data links, or by a combination of hardwired andwireless data links) through a network, both perform tasks. In adistributed system environment, program modules may be located in bothlocal and remote memory storage devices.

FIG. 10 illustrates, in block diagram form, an exemplary computingdevice 1000 that may be configured to perform one or more of theprocesses described above. One will appreciate that the system 100 cancomprise implementations of the computing device 1000. As shown by FIG.10, the computing device 1000 can comprise a processor 1002, memory1004, a storage device 1006, an I/O interface 1008, and a communicationinterface 1010. While an exemplary computing device 1000 is shown inFIG. 10, the components illustrated in FIG. 10 are not intended to belimiting. Additional or alternative components may be used in otherembodiments. Furthermore, in certain embodiments, a computing device1000 can include fewer components than those shown in FIG. 10.Components of computing device 1000 shown in FIG. 10 will now bedescribed in additional detail.

In particular embodiments, processor(s) 1002 includes hardware forexecuting instructions, such as those making up a computer program. Asan example and not by way of limitation, to execute instructions,processor(s) 1002 may retrieve (or fetch) the instructions from aninternal register, an internal cache, memory 1004, or a storage device1006 and decode and execute them. In particular embodiments,processor(s) 1002 may include one or more internal caches for data,instructions, or addresses. As an example and not by way of limitation,processor(s) 1002 may include one or more instruction caches, one ormore data caches, and one or more translation lookaside buffers (TLBs).Instructions in the instruction caches may be copies of instructions inmemory 1004 or storage 1006.

The computing device 1000 includes memory 1004, which is coupled to theprocessor(s) 1002. The memory 1004 may be used for storing data,metadata, and programs for execution by the processor(s). The memory1004 may include one or more of volatile and non-volatile memories, suchas Random Access Memory (“RAM”), Read Only Memory (“ROM”), a solid statedisk (“SSD”), Flash, Phase Change Memory (“PCM”), or other types of datastorage. The memory 1004 may be internal or distributed memory.

The computing device 1000 includes a storage device 1006 includesstorage for storing data or instructions. As an example and not by wayof limitation, storage device 1006 can comprise a non-transitory storagemedium described above. The storage device 1006 may include a hard diskdrive (HDD), a floppy disk drive, flash memory, an optical disc, amagneto-optical disc, magnetic tape, or a Universal Serial Bus (USB)drive or a combination of two or more of these. Storage device 1006 mayinclude removable or non-removable (or fixed) media, where appropriate.Storage device 1006 may be internal or external to the computing device1000. In particular embodiments, storage device 1006 is non-volatile,solid-state memory. In particular embodiments, storage device 1006includes read-only memory (ROM). Where appropriate, this ROM may be maskprogrammed ROM, programmable ROM (PROM), erasable PROM (EPROM),electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM),or flash memory or a combination of two or more of these.

The computing device 1000 also includes one or more input or output(“I/O”) devices/interfaces 1008, which are provided to allow a user toprovide input to (such as user strokes), receive output from, andotherwise transfer data to and from the computing device 1000. These I/Odevices/interfaces 1008 may include a mouse, keypad or a keyboard, atouch screen, camera, optical scanner, network interface, modem, otherknown I/O devices or a combination of such I/O devices/interfaces 1008.The touch screen may be activated with a stylus or a finger.

The I/O devices/interfaces 1008 may include one or more devices forpresenting output to a user, including, but not limited to, a graphicsengine, a display (e.g., a display screen), one or more output drivers(e.g., display drivers), one or more audio speakers, and one or moreaudio drivers. In certain embodiments, devices/interfaces 1008 isconfigured to provide graphical data to a display for presentation to auser. The graphical data may be representative of one or more graphicaluser interfaces and/or any other graphical content as may serve aparticular implementation.

The computing device 1000 can further include a communication interface1010. The communication interface 1010 can include hardware, software,or both. The communication interface 1010 can provide one or moreinterfaces for communication (such as, for example, packet-basedcommunication) between the computing device and one or more othercomputing devices 1000 or one or more networks. As an example and not byway of limitation, communication interface 1010 may include a networkinterface controller (NIC) or network adapter for communicating with anEthernet or other wire-based network or a wireless NIC (WNIC) orwireless adapter for communicating with a wireless network, such as aWI-FI.

This disclosure contemplates any suitable network and any suitablecommunication interface 1010. As an example and not by way oflimitation, computing device 1000 may communicate with an ad hocnetwork, a personal area network (PAN), a local area network (LAN), awide area network (WAN), a metropolitan area network (MAN), or one ormore portions of the Internet or a combination of two or more of these.One or more portions of one or more of these networks may be wired orwireless. As an example, computing system 1000 may communicate with awireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), a WI-FInetwork, a WI-MAX network, a cellular telephone network (such as, forexample, a Global System for Mobile Communications (GSM) network), orother suitable wireless network or a combination thereof. Computingdevice 1000 may include any suitable communication interface 1010 forany of these networks, where appropriate.

The computing device 1000 can further include a bus 1012. The bus 1012can comprise hardware, software, or both that couples components ofcomputing device 1000 to each other. As an example and not by way oflimitation, bus 1012 may include an Accelerated Graphics Port (AGP) orother graphics bus, an Enhanced Industry Standard Architecture (EISA)bus, a front-side bus (FSB), a HYPERTRANSPORT (HT) interconnect, anIndustry Standard Architecture (ISA) bus, an INFINIBAND interconnect, alow-pin-count (LPC) bus, a memory bus, a Micro Channel Architecture(MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express(PCIe) bus, a serial advanced technology attachment (SATA) bus, a VideoElectronics Standards Association local (VLB) bus, or another suitablebus or a combination thereof.

In the foregoing specification, the invention has been described withreference to specific exemplary embodiments thereof. Various embodimentsand aspects of the invention(s) are described with reference to detailsdiscussed herein, and the accompanying drawings illustrate the variousembodiments. The description above and drawings are illustrative of theinvention and are not to be construed as limiting the invention.Numerous specific details are described to provide a thoroughunderstanding of various embodiments of the present invention.

The present invention may be embodied in other specific forms withoutdeparting from its spirit or essential characteristics. The describedembodiments are to be considered in all respects only as illustrativeand not restrictive. For example, the methods described herein may beperformed with less or more steps/acts or the steps/acts may beperformed in differing orders. Additionally, the steps/acts describedherein may be repeated or performed in parallel with one another or inparallel with different instances of the same or similar steps/acts. Thescope of the invention is, therefore, indicated by the appended claimsrather than by the foregoing description. All changes that come withinthe meaning and range of equivalency of the claims are to be embracedwithin their scope.

We claim:
 1. A method comprising: establishing a first connectionbetween a mobile device and a support terminal; conducting a video chatbetween the mobile device and the support terminal transmitted throughthe first connection; receiving a display element pushed through asecond connection by the support terminal; and in response to receivingthe display element: dividing a display screen of the mobile device intoat least a first pane and a second pane; providing the video chat in thefirst pane; and providing the display element in the second pane.
 2. Themethod of claim 1, wherein establishing the first connection comprisessending a request for a video chat connection through a series ofservers.
 3. The method of claim 2, further comprising establishing apeer-to-peer connection, after the request for video chat is received,and maintaining the first connection on the peer-to-peer connection. 4.The method of claim 1, wherein receiving the display element pushedthrough the second connection by the support terminal comprisesreceiving the display element via a Websocket server.
 5. The method ofclaim 1, further comprising modifying the display element upon detectinga user interaction, wherein providing and modifying the display elementoccurs independent of the video chat provided in the first pane.
 6. Themethod of claim 5, wherein the user interaction comprises one or moreof: entering input into a fillable form provided in the second pane;capturing an image of a check for deposit; sending a text-based messageto the support terminal; signing a document provided in the second pane;or accepting or rejecting terms provided by the support terminal.
 7. Themethod of claim 6, wherein capturing an image of a check for depositcomprises: overlaying the video chat provided in the first pane with aviewfinder mode that displays a representation of image data captured bya camera of the mobile device; and capturing an image of a front sideand a backside of the check.
 8. The method of claim 6, furthercomprising sending a modified display element to a database repositorythrough a third connection.
 9. The method of claim 1, further comprisingmodifying a size of the first pane and a size of the second pane basedon the display element received.
 10. The method of claim 1, whereindividing the display screen into at least the first pane and the secondpane comprises dividing the display screen into three or more panes inresponse to receiving the display element.
 11. The method of claim 1,wherein receiving the display element comprises receiving a location ofthe display element and retrieving the display element from thelocation.
 12. The method of claim 1, further comprising: receiving asubsequent display element; and providing the subsequent display elementin the second pane as an overlay over a previous display element. 13.The method of claim 1, wherein receiving the display element comprises:receiving a trigger through the second connection; and executing codestored on the mobile device, in response to receiving the trigger, toactivate a peripheral of the mobile device.
 14. The method of claim 1,wherein the display element comprises one or more of: acomputer-readable code that when scanned by another computer devicecauses the another computing device to perform a predetermined action;an informational video; an informational document; a signature pad; afillable form; terms accompanied by an option to accept or reject theterms; an interface for capturing and sending images of a check; or atext-based messaging interface.
 15. A method comprising: establishing afirst connection between a support terminal and a mobile device;providing a video chat between the support terminal and the mobiledevice transmitted through the first connection; selecting a displayelement from the support terminal; and pushing the display element tothe mobile device through a Websocket server.
 16. The method of claim15, wherein pushing the display element to the mobile device comprisespushing a trigger to the mobile device through the Websocket server,wherein the trigger initiates an execution of code stored on the mobiledevice to activate a capability of the mobile device.
 17. The method ofclaim 15, further comprising pushing a default display element to themobile device immediately after establishing the first connection. 18.The method of claim 15, further comprising receiving a signal throughthe Websocket server that a modified display element is stored in adatabase repository.
 19. The method of claim 18, further comprisingaccessing the database repository and retrieving the modified displayelement.
 20. A mobile device comprising: a display screen; at least oneprocessor; and at least one non-transitory computer-readable storagemedium storing instructions that, when executed by the at least oneserver causes the device to; establish a first connection between themobile device and a support terminal; conduct a video chat between themobile device and the support terminal transmitted through the firstconnection; receive a display element pushed through a second connectionby the support terminal; and in response to receiving the displayelement: divide the display screen into a first pane and a second pane;provide the video chat in the first pane; and provide the displayelement in the second pane.